Method and system for sorting and displaying data

ABSTRACT

A system and method adapted to facilitate efficient sorting and displaying of data in a table. An example method includes displaying a table with a first portion of data and a second portion of data; simultaneously applying a first sort rule to the first portion of data (primary database object(s)) and a second sort rule to the second portion of data (secondary database object(s)) in response to user selection of a sort option; and illustrating sorted data via the table, wherein the first sort rule is adapted to cause the first portion of data to appear in one or more predetermined locations in the table relative to the second portion of data. The second portion of data is sorted according to the second sort rule. In a more specific embodiment, primary database objects are sorted via the first sort rule and are not subject to the second sort rule. The first sort rule includes a specification that primary database objects be displayed at a predetermined location in the table, such as in an uppermost position in the table or in an upper most position in a purpose group section of the table.

CROSS REFERENCES TO RELATED APPLICATIONS

This application is a continuation of the following application, U.S.patent application Ser. No. 13/035,914, entitled SETTING AND DISPLAYINGPRIMARY OBJECTS FOR ONE OR MORE PURPOSES IN A TABLE FOR ENTERPRISEBUSINESS APPLICATIONS, filed on Feb. 25, 2011, which is herebyincorporated by reference, as if it is set forth in full in thisspecification:

BACKGROUND

This application relates in general to software and more specifically tosystems, methods, and user interfaces for facilitating the display andsorting of items in tables.

Methods for displaying data in database tables are employed in variousapplications including Customer Relationship Management (CRM), SupplyChain Management (SCM), Project Management (PM), general EnterpriseResource Planning (ERP) applications, and so on. Such applications oftendemand efficient mechanisms for navigating, searching for, displaying,and sorting data.

For the purposes of the present discussion, a database may be anyorganized collection of data, wherein data is organized via databaseobjects (also called items), such as tables, records, rows, and so on.Data in a database may be grouped into various objects (e.g., tables)and sub-objects (e.g., rows and fields in a table), where thesub-objects are also called objects herein. An example database includesvarious data groupings in accordance with purposes associated with thedifferent groupings. For example, in a database that tracks productsales, one table may contain records associated with “ship to”addresses; another table may contain “bill to” addresses; another tablemay include “sold to” addresses. In the example database, each tableincludes a primary record, representing a record associated with ahighest priority. For example, in a table illustrating a set of “shipto” addresses, one of the shipping addresses may be considered theprimary shipping address. The primary shipping address may be, forexample, the shipping address that is most frequently used.

Each table in the example database may be sortable via one or more sortrules, also called sorting rules or sorting criteria. For example,records (e.g., fields, rows, or columns) in a given table may be sortedby alphabetical order. In this case, the applied sort rule is said to bean alphabetical sort rule.

Conventionally, to view and sort data from multiple tables associatedwith multiple different purposes (e.g., purpose groups) or categories,each table is opened and sorted separately. However, the opening ofmultiple tables and associated windows may be time consuming and mayrequire excessive use of computing resources. Furthermore, sorting ofthe tables may cause the primary records to be sorted along with otherrecords in the tables, thereby potentially making the primary recordsless visible within the tables. This may inhibit users from rapidly andefficiently arranging, viewing, and accessing desired data.

SUMMARY

An example method for facilitating efficient display and sorting of dataincludes displaying a table with a first portion of data and a secondportion of data; simultaneously applying a first sort rule to the firstportion of data and a second sort rule to the second portion of data inresponse to user selection of a sort option; and illustrating sorteddata via the table, wherein the first sort rule is adapted to cause thefirst portion of data to appear in one or more predetermined locationsin the table relative to the second portion of data, and wherein thesecond portion of data is sorted according to the second sort rule.

In a more specific embodiment, the first sort rule is characterized by ahigher sorting priority than the second sort rule such that data that issubject to the first sort rule is not subject to the second sort rule,but displayed data that has been sorted via the second sort rule may bepositioned in the table in accordance with both the first sort rule andthe second sort rule. The first sort rule specifies that data sorted bythe first sort rule is displayed at a predetermined prominent positionin the table, such as in the uppermost position, e.g., top row(s).

The first portion of data includes one or more database objects that aredesignated as primary database objects. The sorted data includes dataorganized into one or more sections (also called stacks) correspondingone or more purpose groups. The one or more primary database objects areassociated with, i.e., belong, to one or more purpose groups. The secondportion of data includes one or more database objects other than primarydatabase objects, where the database objects are associated with one ormore purpose groups.

Each primary database object that is associated with a purpose group isdisplayed in a predetermined location within each section of the table.The predetermined location may be an uppermost portion of a section. Rowbanding, whereby one or more rows are highlighted, outlined, orotherwise graphically altered, may be selectively applied to the tableto facilitate visually distinguishing different sections of data in atable or to facilitate visually distinguishing one or more primarydatabase objects from data of the second portion of data. A group filteroption enables a selective omission of one or more portions or groups ofdata from the table of displayed sorted data.

The novel design of certain embodiments disclosed herein is facilitatedby mechanisms that enable sorting of data in a table, whereby primarydatabase objects persist in a prominent location, while secondary datais sorted according to another sort rule, such as a default table sortrule.

Furthermore, mechanisms are provided for enabling simultaneous displayof data pertaining to multiple purpose groups in a single table. Datafrom multiple purpose groups may be displayed in a single table, whereprimary data is automatically positioned at the top of a table; at thetop of a purpose group section or stack; or at other predeterminedvisually prominent locations. Hence, important data can now be readilyviewed in a sorted table without the important data being shuffled amongless important data. Furthermore, various types of data may be viewed ina single table without the need to open multiple windows and tables toview data from different purpose groups or other categories.

Hence, use of embodiments disclosed herein may enable databaseapplication users to readily combine, assign, and visually distinguishmultiple primary settings (primary database objects) within one or morepurpose groups in a single table. This may greatly expedite viewing,accessing, and sorting data. This may be particularly beneficial forenterprise business applications, where rapid and efficient access tohigh priority data may save time and reduce business costs.

A further understanding of the nature and the advantages of particularembodiments disclosed herein may be realized by reference of theremaining portions of the specification and the attached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating an example embodiment of a system forfacilitating organization of data in one or more database tables ofEnterprise Resource Planning (ERP) software.

FIG. 2 is a diagram of a first example user interface display screenshowing a first sorted table with row items (objects) that are part of apurpose group (category), wherein the row items include a primary rowitem and secondary row items.

FIG. 3 is a diagram of a second example user interface display screenshowing a second sorted table with row items associated with multiplepurpose groups, wherein each purpose group includes a primary row item.

FIG. 4 is a diagram illustrating the user interface display screen ofFIG. 3 with drop-down lists activated and showing example sort optionsand example group filter options.

FIG. 5 is a diagram of a third example user interface display screenshowing a third sorted table, where a purpose-group filter has beenapplied.

FIG. 6 is a diagram of a fourth example user interface display screenshowing a fourth sorted table, where primary row items are positioned atan uppermost portion of the table.

FIG. 7 is a diagram of a fifth example user interface display screenshowing a fifth sorted table, which includes a primary row item,secondary row items, and tertiary row items associated with a purposegroup and sub-purpose groups.

FIG. 8 is a flow diagram of a first example method adapted for use withthe embodiments of FIGS. 1-7.

FIG. 9 is a flow diagram of a second example method adapted for use withthe embodiments of FIGS. 1-7.

FIG. 10 is a flow diagram of a third example method adapted for use withthe embodiments of FIGS. 1-7.

FIG. 11 is a diagram of a sixth example user interface display screenillustrating a example use case involving a table of contacts, i.e., acontacts table with contact objects arranged in rows.

FIG. 12 is a diagram showing an activated actions menu of the sixthexample user interface display screen of FIG. 11.

FIG. 13 is a diagram of a seventh example user interface display screenillustrating an example use case involving a table with bill-to andship-to addresses, where a purpose filter has been set to display allbill-to and ship-to contact addresses.

FIG. 14 is a diagram showing the seventh example user interface displayscreen of FIG. 13 after a purpose filter has been set to display onlybill-to contact addresses.

FIG. 15 is a diagram showing the seventh example user interface displayscreen of FIG. 13 after additional primary objects have been set, andthe resulting table rows have been arranged into sorted purpose groups.

FIG. 16 is a diagram illustrating the seventh example user interfacedisplay screen of FIG. 15 after selection of a ship-to purpose filter.

FIG. 17 is a diagram of an eighth example user interface display screenillustrating an alternative mechanism for setting a primary object.

DETAILED DESCRIPTION OF EMBODIMENTS

Although the description has been described with respect to particularembodiments thereof, these particular embodiments are merelyillustrative, and not restrictive.

For example, while the present description has been described primarilywith respect to sorting and displaying of data in database tables, suchas Enterprise Resource Planning (ERP) database tables, embodiments arenot limited thereto. For example, certain embodiments discussed hereinmay be applicable to the display of search engine results or any listingof data. Certain embodiments discussed herein are particularlyapplicable to listing of data where benefits are derived from groupingthe data into different categories or purpose groups, and/or wherebenefits may be derived from applying different sorting and/or displayrules to data belonging to different categories. In general, varioussoftware applications that employ a user interface to display data maybenefit from the ability to simultaneously apply multiple sorting rulesto a list of data, where different sorting rules may apply to differentgroupings, types, or other categories of data.

In addition, while certain embodiments are discussed with reference todisplay of data from different purpose groups, embodiments are notlimited thereto. For example, the sorting and display of any category ofdata via a table, not necessarily a purpose group category, may beimplemented in accordance with the teachings herein without departingfrom the scope thereof.

Enterprise software applications, such as Customer RelationshipManagement (CRM), Business Intelligence (BI), and Enterprise ResourcePlanning (ERP) software, often include databases with various databaseobjects, also called data objects, items, or entities. A database objectmay be any collection of data, such as data pertaining to a particularfinancial account, asset, employee, contact, and so on. Examples ofdatabase objects include, but are not limited to, records, tables, rows,columns, or other database entities, such as portions of datacorresponding to accounts receivables, products, employees, customers,business resources, and so on. Database objects corresponding to rows orcolumns are also called row items or column items, respectively. Aprimary database object, also called a primary item, or a set master ora set preferred object, may be any database object that has beendesignated to have a predetermined priority that is higher than apriority of one or more other database objects included in a similargroup of data as the primary database object. A priority may be anyvalue in a ranking scale that may be used to determine how a databaseobject should be treated or handled by software relative to one or moreother database objects.

For the purposes of the present discussion, ERP software may be any setof computer code that is adapted to facilitate managing resources of anorganization. Example resources include Human Resources (HR), financialresources, assets, and so on, of an enterprise. The terms “ERP software”and “ERP application” may be employed interchangeably herein. However,an ERP application may include one or more ERP software modules orcomponents, such as user interface software modules or components.

For clarity, certain well-known components, computer operating systems,routers, power supplies, and so on, have been omitted from the figures.However, those skilled in the art with access to the present teachingswill know which components to implement and how to implement them tomeet the needs of a given application.

FIG. 1 is a diagram illustrating an example embodiment of a system 10for facilitating organization of data 26 in one or more database tables24 of Enterprise Resource Planning (ERP) software 22. The system 10includes a data organizer 12 in communication with an ERP computersystem 14 running an ERP application 22, such as a database. The ERPdatabase application 22 includes database tables 24 with various tableobjects 26, such as columns, rows, fields, records, and so on. The dataorganizer 12 includes user interface software 18 and a data sortingmodule 16 in communication with the database tables 24. The userinterface software 18 of the data organizer 12 communicates with userinterface hardware 20, which may include a computer monitor, keyboard,mouse, and so on.

For clarity, the data organizer 12 is shown separately from the ERPcomputer system 14. However, the data organizer 12 may run on the samecomputer as the ERP application 22 and may even be embedded as part ofthe ERP application 22 without departing from the scope of the presentteachings.

In operation, a user employs the user interface hardware 20 to view userinterface display screens provided by the user interface software 18.The user interface software 18 facilitates viewing data from one or moredatabase tables 24 of the ERP application 22 and further facilitatesstrategically sorting the table data and displaying the sorted tabledata, which includes database objects, as discussed more fully below.

In a first example operative scenario, a user employs the user interfacesoftware 18 to view a table that includes data corresponding to aparticular purpose group, also called a purpose category or context. Forthe purposes of the present discussion, a purpose group may be anymechanism for distinguishing data in accordance with an intended use ofor purpose of the data. An example purpose category includes ashipping-address category, wherein database objects in theshipping-address category include one or more database objectsassociated with one or more shipping addresses. A category of data mayrefer, for example, to a distinguishing label or name applied to a groupor collection of data and/or to the data of the group itself.

An example purpose group, such as a shipping-address purpose group,includes a database object (e.g., row item) that has been designated asa primary object. In the present operative scenario, when the table issorted, e.g., in response to user input supplied via the user interfacehardware 20, all database objects (e.g., shipping-address row items)other than the primary object are sorted according to a predeterminedtable sort rule. The sort rule, which is also called a sort criterion orsort constraint, may specify, for example, that table data (other thanprimary data) be sorted alphabetically. During the sort, the primaryobject automatically moves to a predetermined prominent location in thetable, such as the topmost row in the table.

Hence, the user interface software includes machine-readableinstructions, i.e., computer code, for implementing a table sort basedon plural sort rules. In particular, a first sort rule may be applied toprimary objects. The first sort rule (also called sorting rule) mayspecify, for example, that primary objects are moved to the top of thetable in response to activation of a sort. The first sort rule mayfurther specify a sorting rule for organizing multiple primary objectsrelative to each other. A second sort rule, which may be a default tablesorting rule, is applied to data that is not primary data (i.e., not aprimary object(s)). The second sort rule may specify, for example, thatsecondary data be sorted alphabetically.

In the present operative scenario, table data that is not primary data,i.e., that does not represent one or more primary objects, is calledsecondary data, which comprises secondary objects, i.e., secondary rowitems. The primary objects are said to persist in prominent tablelocations after table sorting. Exact prominent locations areimplementation specific and may be adjusted without departing from thescope of the present teachings. For example, in tables where databaseobjects are arranged in columns, primary objects may move to the leftmost columns. Alternatively, or in addition, row or column banding maybe applied to the primary data and/or the secondary data to facilitateenabling users to rapidly distinguish between primary and secondarydatabase objects. Similar banding or highlighting techniques may beapplied to hierarchical representations of data, such as treehierarchies.

Conventionally, when table data is sorted, any primary objects aresorted according to a single sort rule applied to the table. Forexample, in the case of an alphabetical sort, the primary object willconventionally be shuffled into alphabetical order with the remainingsecondary objects. This may undesirably obscure primary data.

In the present embodiment, in implementations where tables includemultiple primary objects, the primary objects may be moved to prominenttable location(s), e.g., to a top section of the table, where they maybe ordered in accordance with the first sort rule. Multiple primariesfor different purpose groups may be included under one purpose withoutdeparting from the scope of the present teachings. For example, while agiven typically includes one primary purpose-group related object, thegiven purpose group may or may not coincidentally contain primaryobjects from other purpose groups.

In an example implementation where table data includes multiple purposegroups of database objects, where each purpose group has a singleprimary database object, the user interface software 18 may beconfigured to sort primary and secondary data according to one or moreuser options. For example, in one configuration, the primary objects areseparated from their corresponding purpose groups; moved to the top ofthe table; and arranged in an order specified via a first sort rule. Thesecondary data is sorted according to the second sort rule and isdisplayed in a portion or in one or more sections of the table thatis/are below the primary objects.

Hence, object lists, as may be displayed in a table, may containmultiple purposes. One or more primary settings may be assigned to eachof the purpose groups (purposes) within a single table, resulting inmultiple primary database objects (also called primaries) per table. Ina group list with multiple primaries assigned to multiple purposes, allprimary-per-purpose assignments may be displayed in the top rows of thetable in alphabetical order, or any context specified sorting order,e.g., a default sorting order. Also, multiple purposes can be filteredusing a purpose filter to display only one purpose group and oneassigned primary at a time, as discussed more fully below.

In another example configuration (of the user interface software 18),the sorted data is displayed partitioned in groups, called stacks, wherethe top of each group stack is the primary object for that group. Thesecondary data in each group may be sorted according to the second sortrule, which may be the default sort rule for the table. The groupsthemselves may be ordered in accordance with the sort order of theprimary objects associated with each group, i.e., the first sort rule.For example, if the first sort rule for sorting the primary objectsspecifies that the primary objects be organized alphabetically, then asort may result in the purpose groups being positioned relative to eachother based on the alphabetical order of the associated primary objects.

Hence, a primary object (also called a primary, master, preferred,primary assignment, primary item, and so on) can be displayed in aby-purpose table which organizes and displays multiple primary objectsin multiple purpose groups (also called stacked by-purpose list groups).Each purpose group may default to display the associated primary objectin the first row of the purpose group list, i.e., stack list.Secondarily, stacks may be sorted alphabetically, or within a specifiedcontext. All secondary sorting may inherit standard or preexistingdefault table sort behaviors. The primary object may always bedisplayed, for example, at the top row of each stack. Row banding can beapplied to delineate and highlight purpose group stacks within astandard object group list table.

The system 10 may be considered as providing various sorting and displayfunctionality, including a sorting mechanism (e.g., via the data sortingmodule 16 responsive to user input via the user interface software 18)for assuring that user designated primary object(s) are selectivelymoved to the highest priority group list location(s) within a singlegroup list or a group list table containing multiple purpose(s) using astrategic grouping organization and mechanism for the display of primaryobjects/settings in tables.

In summary, in the present example embodiment, a user selected primaryitem in a group list may sort to the top of the table (or otherpredetermined prominent table location) and can be reassigned, or reset,through user actions. Primary objects may display in a table with theprimary object defaulting to display at the top row of a standard tablelist. All other row objects in the group list, e.g., secondary objects,may inherit any standard table default sorting behavior as a secondarysorting method (e.g., the second sort rule). For example, after a firsttable row is reserved for a primary object, all subsequent row items (2,3, 4 . . . ) might, for example, inherit alphabetical sorting, e.g., ifsorting by Contact Name is the specified table default sorting behavior.The primary object row positioning does not necessarily change toinherit the secondary standard table sorting behavior, and therefore,persists in the top row.

FIG. 2 is a diagram of a first example user interface display screen 30showing a first sorted table 48 with row items (objects) 40-46 that arepart of a purpose group (category), labeled 38, wherein the row items40-46 include a primary row item 40 and secondary row items 42-46.

In the example sorted table 48, the primary row item 40, i.e., objecthas been sorted to the top of the table 48. Secondary data, representingthe secondary objects 42-46, has been sorted alphabetically (A-C) andarranged below the primary object 40, called primary object or primaryrow item 1A.

For illustrative purposes, the purpose group associated with the objects40-46 is labeled as a first purpose group 38. The purpose group label 38may be omitted without departing from the scope of the presentteachings.

The example display screen 30 further includes various user interfacecontrols 32-36, including a sort button 32, a sort-options drop-downlist 34, and a group-filter-options drop-down list 36. A user triggers asort of the table 48 by selecting the sort button 32. The nature of thesorting and the display of objects may be controlled via selection ofoptions from the sort-options drop-down list 34 and thegroup-filter-options drop-down list 36, respectively, as discussed morefully below.

For the purposes of the present discussion, a user interface control maybe any graphically displayed feature that is responsive to userselection of the feature or otherwise enables a user to select orinteract with functionality afforded by underlying software. Examples ofuser interface controls include buttons, drop-down lists, checkboxes,fields, radio buttons, and so on.

In an example operative scenario, the sort-options drop-down list 34provides one or more user options for specifying or otherwise selectingsort rules that affect how the secondary data 42-46 and the primary data40 is sorted. For example, the secondary data 42-46 may be sorted basedon alphabetical order or another prioritization/sorting scheme. Theprimary data 40 may be automatically moved to a prominent position inthe table 48, and various distinguishing features, such as row banding,may be applied. For the purposes of the present discussion, row bandingmay refer to any highlighting, outlining, or graphical alteration of oneor more row features or characteristics.

The group-filter options 36 may provide one or more user options forcontrolling which purpose groups are displayed in the table 48. Forexample, while the data accessed by the user interface software 18 ofFIG. 1 may include data associated with multiple purpose groups, purposegroups other than the first category 38 may have been filtered from thedisplay screen 30 via selection of a particular group-filter option fromthe group-filter options drop-down list 36.

Note that the user interface controls 32-36 for interacting with theuser interface software 18 of FIG. 1 are illustrative, and more, fewer,and/or different controls than those shown may be used in animplementation without departing from the scope of the presentteachings.

FIG. 3 is a diagram of a second example user interface display screen 50showing a second sorted table 78 with row items 40-46, 60, 52-56, 70,62-66 associated with multiple purpose groups 72-76, wherein eachpurpose group 72-76 includes a respective primary row item 40, 60, 70.

In the sorted table 78, the primary row items 40, 60, 70, i.e., primaryobjects, have been positioned at the top portions of their respectivesorted groups 72-76. Secondary data 42-46, 52-56, 62-66 is positionedbelow each respective primary object 40, 60, 70 and sorted according tosecond sort rule (e.g., alphabetical), which may be the default sortrule for the table 78. For illustrative purposes, each purpose groupsection 72-76 is provided with a corresponding purpose-group label 38,58, 68, respectively. Purpose group labels may be omitted withoutdeparting from the scope of the present teachings.

FIG. 4 is a diagram illustrating the user interface display screen 50 ofFIG. 3 with drop-down lists 34, 36 activated and showing example sortoptions 80 and example group filter options 100. The example sortoptions 80 and filter options 100 and associated user interface controlsare merely illustrative, and more, fewer, and/or different types of userinterface controls and options may be provided without departing fromthe scope of the present teachings.

In the present example embodiment, the sort options 80 include aset-primary-sort-rule checkbox 84, a secondary-sort-rule checkbox 86, aset group-sort-rule checkbox 88, a set-default-sort-rule checkbox 88, aset-default-sort-rule checkbox 90, a set-other-sort-rule checkbox 92, aset-banding checkbox 94, a primary-persistence checkbox 96, and agroup-primaries checkbox 98, and an OK button 82. In operation, a usermay select one or more of the checkboxes 84-98. When certain checkboxesare selected, and the OK button 82 is subsequently selected, anotheruser interface display screen may appear (not shown) to facilitateenabling a user to further specify details of selected options.

For example, in the present operative scenario, the set-banding checkbox94 is selected, and the checkboxes 96, 98 are checked. If the userselects the OK button 82, then primaries will persist at prominentlocations in any sorted table, by virtue of the primary-persistencecheckbox 96 being selected. In addition, by virtue of thegroup-primaries checkbox 98 being selected, primary objects will bepositioned in prominent locations (e.g., at the top of the sections foreach purpose group) in each section corresponding to a given purposegroup. If the group-primaries checkbox 98 were not selected, thenprimary objects would sort, for example, to the top of a given table,while secondary objects would be sorted and positioned beneath theprimary objects. If the primary-persistence checkbox 96 were notselected, then a resulting sort might cause sorting of the primaryobjects and the secondary objects with the same sort rules, such thatthe primary objects would not be automatically positioned in prominentlocations in the resulting sorted table.

By virtue of the set-banding checkbox 94 being selected, another userinterface display screen (e.g., dialog box) may be displayed. Theadditional user interface display screen may provide, for example,additional options for enabling a user to select background colors, textcolors, outline colors, and so on, for rows corresponding to primaryobjects and secondary objects. An option for applying banding tofacilitate visually distinguishing different objects of differentpurpose groups, e.g., different sections of the table corresponding todifferent purpose group lists, may be provided. Hence, banding,highlighting, or other visually distinguishing mechanisms may be used tofacilitate distinguishing one or more primary database objects fromsecondary database objects and/or to facilitate distinguishing databelonging to different purpose groups.

Similarly, if the set-primary-sort-rule checkbox 84 is selected, asubsequent dialog box may appear with additional options for specifyinghow primary objects are to be sorted relative to each other. Forexample, the additional options may enable a user to specify thatprimary objects are to be sorted alphabetically relative to each other.

If the set-secondary-sort-rule checkbox 86 is selected, then asubsequent additional user interface display screen may provideadditional options for setting secondary sort rules. For example, thesecondary sort rules may specify that secondary data be sorted accordingto a predetermined priority scheme; by proximity to a given location;alphabetically, or via another sort rule.

If the set-group-sort-rule 88 is selected, an additional user interfacedisplay screen may appear that provides additional user options forspecifying how different purpose groups will be organized in sections(also called purpose stacks) relative to each other. For example, theadditional options may enable a user to cause purpose groups to beorganized relative to each other according to a sort rule applied to theaccompanying primary objects. Another option, for example, may enable auser to cause purpose groups sections to be organized according to apredetermined priority value assigned to each purpose group.

If the set-default-sort-rule checkbox 90 is selected, then an additionaluser interface display screen may appear that provides additional useroptions for specifying a default sort rule for a table. A default sortrule may be a sort rule that applies to only secondary data if theprimary-persistence checkbox 96 is selected. The default sort rule mayapply to the secondary data when another secondary sort rule is notprovided.

If the set-other-sort-rule checkbox 92 is selected, then an additionaluser interface display screen may appear that provides additional useroptions to set other sort rules that have not otherwise already beenset. For example, additional options may be provided that enable a userto specify multiple sort criteria for different types of data based onpredetermined priorities assigned to multiple different types of data.Another example option might enable a user to change the location in atable that is considered to be a prominent location. For example, if theprominent location is set as the bottom most portion of a table, thensubsequent sorting may cause primary objects to appear at the bottom ofthe table.

Note that if several of the check boxes 84-98 are selected, then thesubsequently displayed dialog box (displayed after selection of the OKbutton 82) may include user interface controls, e.g., fields,checkboxes, and so on, for adjusting settings and/or other optionscorresponding to each of the selected check boxes 84-98.

The example group filter options 36 include adisplay-all-available-groups checkbox 104, a manually-select-groupscheckbox 106, an assign-sorting-priorities checkbox 108, and aselect-groups-based-on-other-criteria checkbox 110, and a done button84. When one or more of the checkboxes 104-110 is selected, and the donebutton 84 is subsequently selected, an additional user interface displayscreen (not shown) may appear that provides additional user options.

In the present example operative scenario, thedisplay-all-available-groups checkbox 104 is selected. In this case, noadditional user interface display screen needs to be displayed inresponse to subsequent selection of the done button 84. In this case,all purpose groups and accompanying objects that are available fordisplay in a table will be shown in the table.

If the manually-select-groups checkbox 106 is selected, then anadditional user interface display screen may appear that providesadditional user options to specify which of the purpose groups andaccompanying objects that are available to display will be shown in asubsequently displayed table. For example, the table 78 displayed viathe user interface display screen 50 may be adjusted to only display thefirst purpose group 72. In this case, the resulting table 78 may looksimilar to the table 48 of FIG. 2.

If the assign-sorting-priorities checkbox 108 is selected, then anadditional user interface display screen may provide additional optionsfor assigning priority values to each available purpose group. Theassigned priority values may be used to affect how the purpose groupsare ordered relative to each other in a resulting sorted table. Thegroup sorting rules may override certain sort rules for sorting primaryobjects, other than the primary sort rule that causes primary objects tobe displayed in a predetermined most prominent table location.

If the select-groups-based-on-other-criteria checkbox 110 is selected,then a subsequent user interface display screen may provide additionaluser options enabling a user to select for display, for example, purposegroups having a priority value above a predetermined level.

Hence, the present embodiment may provide various user options,including group filter options 100 and sort options 80. A user may havethe option to split sort methods among primary objects and secondaryobjects; to selectively omit purpose groups from a subsequentlydisplayed table; to toggle on and off persistence of primaries in asorted table; to group primaries in a section at top of table or at topof sections of the table pertaining to each purpose group; toselectively display data from multiple purpose groups in a table alongwith primary items and secondary items; to selectively sort the primaryitems and the secondary items in accordance with one or more sortingrules; to apply a first sorting rule to primary objects and a secondsorting rule to the secondary objects, wherein the first sorting ruleand the second sorting rule are implemented in response to userselection of a sort button; to specify that primary objects not besorted according to the second sort rule and be positioned abovesecondary data of the same purpose group; to specify that secondaryobjects be sorted according to one or more predetermined default tablesorting methods (e.g., alphabetical), and so on.

FIG. 5 is a diagram of a third example user interface display screen 120showing a third sorted table 128, where a purpose-group filter has beenapplied. In the present example, the purpose-group filter, which hasbeen selected via the group-filter-options drop-down list 36, haseffectively filtered out display of the second purpose group 74 of FIG.3.

FIG. 6 is a diagram of a fourth example user interface display screen130 showing a fourth sorted table 138, where primary row items, i.e.,secondary objects 40, 60, 70, are positioned at an uppermost portion 132of the table 138. Secondary objects 42-46, 52-56, 62-66 are positionedin a second table portion (also called section) 134 below the firstportion 132. The primary objects 40, 60, 70 in the first table portion132 are sorted according to a first sort rule(s), and the secondaryobjects 42-46, 52-56, 62-66 in the second section 134 are sortedaccording to a second sort rule(s).

FIG. 7 is a diagram of a fifth example user interface display screen 140showing a fifth sorted table 148, which includes a primary row object40, secondary row objects 42-46, and tertiary row objects 142, 144, 152,154 associated with a purpose group (labeled 38) and sub-purpose groups,including a first sub-group 164 (labeled 148) and a second sub-group 166(labeled 158).

In the example table 158, primary row items (e.g., primary object 40)may be sorted according with a first sort rule; secondary row items42-46 may be sorted according to a second sort rule; and tertiary rowitems 142, 144, 152, 154 may be sorted according to a third sort rule.In the present embodiment, secondary objects 42-46 are displayed in moreprominent locations in the table 158 (e.g., higher up in the table 158)than tertiary objects 142, 144, 152, 154, and the primary object 40 isdisplayed most prominently relative to other objects. Hence, secondarydata is sorted and positioned below primary data; tertiary data issorted and positioned below associated secondary data.

In the present embodiment, the sort-options drop-down list 34 mayinclude one or more additional options to enable a user to togglepersistence for primary objects and for secondary primary objects. Thesecondary objects 44, 46 may be considered to be secondary primaryobjects, since they represent primary objects of the sub-purpose groups164, 166, respectively. In an example operative scenario, when sortingpersistence for a secondary primary is toggled off or otherwise turnedoff, then subsequent sorting of the table 158 may cause the secondaryobjects 44, 46 to be sorted along with the secondary objects 42, 44,using the secondary sort rule instead of a tertiary sort rule.Alternatively, toggling off of sorting persistence for secondary objectsmay cause the third sort rule (also called tertiary sorting rule) toapply to the secondary objects 42, 44 and the sub-objects 142, 144, 152,154, instead of the second sort rule being applied to the secondaryobjects 42, 44 and the sub-objects 142, 144, 152, 154. The exactbehavior is implementation specific and may be determined by thoseskilled in the art with access to the present teachings to meet theneeds of a given application without undue experimentation. Furthermore,the second sort rule and the third sort rule may be similar. Forexample, secondary sort and tertiary sort rules may be the standarddefault sort rule (e.g., alphabetical) for a table.

In summary, with reference to FIGS. 1-7, certain embodiments have beendiscussed herein for facilitating display and sorting of prioritizeddata (e.g., primary data corresponding to primary objects, secondarydata corresponding to secondary objects, and tertiary data correspondingto tertiary objects) to facilitate enabling users to rapidly locate andidentify high priority data in a sorted table.

FIG. 8 is a flow diagram of a first example method 170 adapted for usewith the embodiments of FIGS. 1-7. The method 170 includes an initialdisplaying step 172, which involves displaying a predetermined portionof data that is maintained in a database via a table, wherein thepredetermined portion of data includes plural database objects,including a database object that is designated as a primary databaseobject.

A subsequent providing step 174 includes providing a user sort option tosort the predetermined portion of data displayed in the table via a sortrule or criterion. In the present embodiment, the sort rule or criterionmay represent a default table sorting rule and may apply to allsecondary objects included among the predetermined portion of data.

Next, an illustrating step 176 includes illustrating sorted data inresponse to user selection of the sort option. The sorted data includesthe primary database object displayed in a predetermined prominentlocation in the table. The sorted data further includes one or moreadditional database objects, e.g., secondary database objects, of thepredetermined portion of data, which are displayed in a sorted order inaccordance with the sort criterion.

Note that the method 170 may be modified or augmented without departingfrom the scope of the present teachings. For example, the sort rule mayfurther include an additional sort rule that is applied to primarydatabase objects. The additional sort rule may specify that primarydatabase objects be moved to one or more predetermined prominentlocations in the table e.g., the top section of the table or the top rowof each purpose group section or list associated with each primaryobject. The additional sort rule may further specify, for example, thatprimary database objects be sorted relative to each other based on apredetermined context, e.g., alphabetically.

FIG. 9 is a flow diagram of a second example method 180 adapted for usewith the embodiments of FIGS. 1-7. The second method includes a firststep 182, which involves displaying data in a database table, whereinthe data includes first portion of data and a second portion of data.The first portion of data may include primary data comprising primarydatabase objects. The second portion of data may include secondary datacomprising secondary and/or tertiary database objects.

Subsequently, a second step 184 includes simultaneously applying a firstsort criterion or rule to the first portion of data and a second sortcriterion or rule to the second portion of data in response to userselection of a sort option. Note that a given sort rule or criterion mayinclude plural sub-rules or criterion. For example, a first sortcriterion that specifies that primary data be moved to a top section ofa table may further include a rule that specifies that primary databaseobjects be arranged alphabetically relative to each other.

Next, a third step 186 includes illustrating sorted data via the table.In response to sorting, the first sort rule is adapted to cause thefirst portion of data to appear in one or more predetermined locationsin the table relative to the second portion of data. The second portionof data is sorted according to the second sort criterion.

In the present embodiment, the first sort rule is characterized by ahigher sorting priority than the second sort rule, such that data thatis subject to the first sort rule is not subject to the second sortrule. In addition, display of data that has been sorted via the secondsort rule may be positioned in the table in accordance with both thefirst sort rule and the second sort rule.

FIG. 10 is a flow diagram of a third example method 190 adapted for usewith the embodiments of FIGS. 1-7. The method 190 includes an initialdisplaying step 192, which involves displaying data in a table, whereinthe data includes database objects that are associated with one or morecategories, e.g., purpose groups, of data.

A second illustrating step 194 includes illustrating one or more primarydatabase objects associated with one or more of the one or morecategories of data.

Next, a final sorting step 196 includes sorting the data according to afirst sort rule applied to the one or more primary database objects anda second sort rule applied to database objects of the table other thanprimary database objects, and display sorted data in response thereto.

FIG. 11 is a diagram of a sixth example user interface display screen200 illustrating an example use case involving a table 218 of contactswith contact objects arranged in rows. The user interface display screen200 includes a table toolbar 212 with various user interface controls,called icons, button icons, or butcons. A menu bar 210 includes actions,view, and format menus.

The table 218 includes a primary column 202 on the far left, which isadjacent to a name column 204, which is adjacent to a primary-phonecolumn 206, which is adjacent to a title column 208. Objects of thetitle column 208 represent various roles associated with a given object,e.g., purchasing manager, purchaser, head purchaser, and so on. Theroles may be used to group objects and sort objects similar to howpurpose groups are grouped and sorted, without departing from the scopeof the present teachings.

A primary object, which corresponds to the first row (also called theuppermost or topmost row) of the table 218, includes a checkmark 214,which acts as a primary object identifier, also called theprimary-status icon. The primary-status icon 214 indicates a primary row(object) in a table. For illustrative purposes, a mouse cursor 216 isshown positioned in a field containing the checkmark 214 and activatinga hover indicator 220 (also called a tooltip text box) identifying thechecked row as a primary contact. The hover indicator 220 exhibitsbubble-help behavior, such that when a cursor hovers over a particularobject or indicator, text may appear describing the object or component.

A user may delete the primary assignment of an object, such as byselecting the associated row, e.g., the first row indicated by thecheckmark 214, and then deleting the contact. Furthermore, a primaryassignment may be removed or reassigned via one or more user optionsprovided by the menu bar 210 and/or the table toolbar 212.

In general, when a user deletes a primary object, the assignment is alsodeleted. If a primary object is required, an error message may bedisplayed prior to the deletion of a primary object or prior to theremoval of the last primary assignment. An error-message dialog box(also simply called dialog) may request the user to first select a newprimary assignment from an object list prior to attempting the deleteobject or assignment.

In the present example embodiment, the primary column 202 is locatedimmediately adjacent to a closely related object-type column, such asthe name column 204. The primary column 202 is preferably placed in thefirst column position, i.e., the left-most column for left-to-rightreading and the right-most column for right-to-left reading in localizedinterfaces.

The primary column 202 is titled “Primary” in a table column header.However, this aspect, as well as other aspects, may be altered withoutdeparting from the scope of the present teachings. For example, the“Primary” label could be replaced with “Master,” “Default,” “Preferred,”and so on.

To set an object as a primary object, the object, e.g., row, may beselected via the mouse cursor 216, and then a set-primary butcon 222 maybe selected. Other methods or additional methods may be employed toimplement a primary assignment without departing from the scope of thepresent teachings. Hence, the set-primary butcon 222 is a toolbar butconwhose selection assigns primary status to a selected row in the table218, resulting in the appearance of a checkmark in the selected row. Theset-primary butcon 222 may be implemented in accordance with RCU(Running Repository Creation Utility) usage guidelines.

The user interface display screen 200 is merely illustrative, andvarious modifications may be made. For example, while not shown in FIG.11, the table 218 may be titled via a table header that establishes acontext for the types of objects, e.g., purchasing contacts, included inthe table. Tables with other types of objects, such as addresses,employees, and so on, may be titled accordingly.

FIG. 12 is a diagram showing an activated actions menu 224 of the sixthexample user interface display screen 200 of FIG. 11. The actions menu224 includes various user options for manipulating selected tableobjects, including an option to create, update, delete, edit, setprimary 226, and an option to update restrictions. Upon selection of theset-primary option 226, a selected object will be marked with acheckbox, such as the checkbox 214 of FIG. 11.

If the selected row is currently the primary object, or multiple rowshave been selected due to multi-select being turned on for the table,then selection of the set-primary option 226 will appear disabled in theactions menu 224. For any other selected row, selection of theset-primary option 226 will mark the row as a primary object via acheckbox. While checkboxes are employed in various embodiments disclosedherein to indicate a primary object, other types of markings orindicators may be employed without departing from the scope of thepresent teachings.

If only one purpose group is shown, and an option to set only oneprimary object per purpose group is selected, then selecting a row thatis not a primary object, and then selecting the set-primary butcon 222or selecting the set-primary menu option 226 will cause reassignment ofthe primary status to the newly selected row. A confirmation dialog boxmay appear confirming any changes. If the table 218 is currently sortedby primary, i.e., the primary object(s) is set to appear at the top ofthe table 218, then the new primary selection should move to the top rowand the previous checkmark should disappear.

In accordance with an example table sorting behavior, when the userselects the header (labeled “Primary”) of the primary column 202, thetable 218 will sort the rows, i.e., objects of the table 218, resultingin the current primary object appearing in the top row of the table 218.Subsequent object rows inherit any previously set table sorting order ora default table sorting order. Primary, secondary, tertiary sorting isallowed on any column without any restriction. By default, the table 218will execute a secondary sort on the most closely related objectspecified in any object type or purpose group column, as discussed morefully below.

FIG. 13 is a diagram of a seventh example user interface display screen230 illustrating an example use case involving a table 238 of bill-toand ship-to addresses, where a purpose filter 240 has been set todisplay all contact addresses.

The table 238 includes a left-most primary column 232, which is adjacentto an address column 246, which is adjacent to a purpose column 234.Various addresses of the address column 236 are part of one or morepurpose groups, as indicated in the purpose column 234. The examplepurpose groups include bill-to, ship-to, and sold-to purpose groups. Theprimary object, as indicated by the checkmark 214 is shown as thetop-most row of the table 238 and is associated with an address of 500Oracle Parkway and three purpose groups; in particular bill-to, ship-to,and sold-to purpose groups.

The purpose-group filter 240 is set to “all,” such that all objects ofall purpose groups of the table 238 are displayed in the table 238. Thepurpose-group filter 240 includes various additional options foraffecting which objects are displayed in the table 238, as discussedmore fully below. In the present example embodiment, the purpose column234 is displayed as the last column of the table 238.

When the table 238 is sorted, e.g., by address, the primary object,identified by the checkmark 214 appears as the top row of the table 238.Subsequent rows inherit a previously established or default tablesorting order.

FIG. 14 is a diagram showing the seventh example user interface displayscreen 230 of FIG. 13 after the purpose filter 238 has been set todisplay only bill-to addresses. A resulting table 248 shows objectsbelonging to a bill-to purpose group, as indicated in an updated purposecolumn 244. Objects of the bill-to purpose group have been moved to thetop of the table 248. Additional objects of different purpose groups maybe displayed by scrolling. Alternatively, the additional objects areomitted from the table 248, such that addresses that are not associatedwith a bill-to purpose group are not displayed. After table sorting, theprimary object, indicated by the checkmark 214, remains in theupper-most row of the table 248.

When a primary object row contains multiple purposes separated bycommas, all purpose values may either persist in the purposes columncell, or disappear, in accordance with the product requirements. Theexact behavior is implementation specific and may vary.

FIG. 15 is a diagram showing the seventh example user interface displayscreen 230 of FIG. 13 after additional primary objects have been set, asindicated by checkmarks 214. The resulting table 258 includes tablerows, which have been arranged into sorted purpose groups

The table 258 is called a by-purpose table, which may be any table withobjects that are arranged or displayed in groups identified in a column,e.g., a purpose-group column 254. In the present example embodiment,different purpose-group sections or lists are differentiated viabanding. Banding may be implemented via adjustment to row-backgroundcolor, or other mechanisms, such as highlighting, as shown by thepurpose-group outline 260.

The purpose group filter 238 has been set to display data pertaining toall purpose groups. After sorting, primary objects appear at the toprows of their respective purpose-group sections, with other objectsbeing sorted and displayed according to a previously set or defaulttable sorting criterion, i.e., rule.

Depending on the functional complexity of an underlyingprimary-object-type data model, there may be multiple listed purposesthat support multiple primary designations for users to assign. Forexample, an object “address” may have multiple listed addresses andmultiple listed purposes assigned to any one of the different addresses.Addresses may have primary ship-to, bill-to, copy-to, and so on,addresses.

In the present example embodiment, only one primary object is allocatedfor a given purpose group, such that only one primary assignment existsfor each object type and purpose combination. The primary column 252 isdisplayed as the first column, and the by-purpose column 254 ispositioned immediately to the right, i.e., in the second column of thetable 258.

Each purpose, e.g., bill-to, ship-to, sold-to, and so on, has one of therespective addresses listed as the primary object for that particularpurpose. Secondary, tertiary, and so on, sorting may be allowed on anycolumn without any restriction. By default, the table 258 executes aprimary sort on purpose, a secondary sort on the primary, and a tertiarysort on the third column of the table. Any time an end-user selects adifferent column to sort on, the table will always prefix that requestwith a primary sort on the purpose column 254.

Other user-interface features and controls may be provided in the userinterface display screen 230 without departing from the scope of thepresent teachings. For example, a header may be provided with the nameof the table 258.

FIG. 16 is a diagram illustrating the seventh example user interfacedisplay screen 230 of FIG. 15 after selection of a ship-to purposefilter 238. After selection of the ship-to filter 238, only objectsassociated with the ship-to purpose group, as identified in a purposecolumn 264 are displayed in the resulting table 268 along withcorresponding addresses, which are displayed in an associated addresscolumn 266.

FIG. 17 is a diagram of an eighth example user interface display screen270 illustrating an alternative mechanism 274 for setting a primaryobject. The alternative mechanism 274 represents a user interfacecontrol for implementing a primary assignment in a dialog box that showsdetailed information 272 pertaining to a particular object. In thepresent example embodiment, the object pertains to a “Center for DiseaseControl” customer.

Other mechanisms for implementing primary assignments may be employedwithout departing from the scope of the present teachings. For example,the user interface control 274 may be replaced with a radio button; maybe an option in a drop-down list, and so on.

The default checkbox setting for the user interface control 274 is setto off, i.e., empty. When primary is set in a table for an object, thecorresponding dialog box 270 will display a checked-on status in thecheckbox 274. Similarly, when a primary is set in a form, thecorresponding object will display with a checkmark in a table.

The checkbox 274 will default to a checked-on status if a primaryassignment has not been previously set for a different object in thesame purpose group type category. Alternatively, a confirmation warningis also display when the user de-selects a primary checkbox when noother objects of a particular purpose group have been designed asprimary.

For the purposes of the present discussion, a form may be any listedgroup of objects and/or attribute types that together create a groupedcommon party object category, e.g., customers contact details. In aform, the set-primary selection component, i.e., user interface control274 may be located adjacent to the corresponding attribute or groupedtype.

Note that while the user interface display screen 270 shows a single“Primary Contact,” many primary objects may be displayed via a singlerecord or dialog box. In such an implementation, additional check boxes(in addition to the check box 274) may be provided for selecting, forexample, primary billing contact and primary shipping contact.

While embodiments have been discussed wherein with reference todisplaying and sorting data in a database table that includes primaryand secondary data, embodiments are not limited thereto. For example,any set of data may be partitioned into different groups with differentpriority values assigned to the different groups. Different sort rulesmay be specified and simultaneously applied to the data so that databelonging to different groups is automatically sorted according to theassociated sort rule, which may be adjusted according to priority valuesassigned to the different groups of data.

Any suitable programming language can be used to implement the routinesof particular embodiments including C, C++, Java, assembly language, andso on. Different programming techniques can be employed such asprocedural or object oriented. The routines can execute on a singleprocessing device or multiple processors. Although the steps,operations, or computations may be presented in a specific order, thisorder may be changed in different particular embodiments. In someparticular embodiments, multiple steps shown as sequential in thisspecification can be performed at the same time.

Particular embodiments may be implemented in a computer-readable storagemedium for use by or in connection with the instruction executionsystem, apparatus, system, or device. Particular embodiments can beimplemented in the form of control logic in software or hardware or acombination of both. The control logic, when executed by one or moreprocessors, may be operable to perform that which is described inparticular embodiments.

Particular embodiments may be implemented by using a programmed generalpurpose digital computer, by using application specific integratedcircuits, programmable logic devices, field programmable gate arrays,optical, chemical, biological, quantum or nanoengineered systems,components and mechanisms may be used. In general, the functions ofparticular embodiments can be achieved by any means as is known in theart. Distributed, networked systems, components, and/or circuits can beused. Communication, or transfer, of data may be wired, wireless, or byany other means.

It will also be appreciated that one or more of the elements depicted inthe drawings/figures can also be implemented in a more separated orintegrated manner, or even removed or rendered as inoperable in certaincases, as is useful in accordance with a particular application. It isalso within the spirit and scope to implement a program or code that canbe stored in a machine-readable medium to permit a computer to performany of the methods described above.

As used in the description herein and throughout the claims that follow,“a”, “an”, and “the” includes plural references unless the contextclearly dictates otherwise. Also, as used in the description herein andthroughout the claims that follow, the meaning of “in” includes “in” and“on” unless the context clearly dictates otherwise.

Thus, while particular embodiments have been described herein, latitudesof modification, various changes, and substitutions are intended in theforegoing disclosures, and it will be appreciated that in some instancessome features of particular embodiments will be employed without acorresponding use of other features without departing from the scope andspirit as set forth. Therefore, many modifications may be made to adapta particular situation or material to the essential scope and spirit.

We claim:
 1. A non-transitory computer-readable storage medium storinginstructions which, when executed by one or more processors, cause theone or more processors to perform operations comprising: sorting aplurality of object groups, each object group thereof including aseparate primary object, by respective primary objects of those objectgroups; determining a plurality of prominent locations within a table;displaying a control; in response to detecting user input that activatesthe control, organizing the table according to a first arrangement inwhich the object groups are placed in order of the sorting relative to aprominent location selected from the plurality of prominent locations,and in which each object group's primary object is placed at a top of anobject group to which that primary object belongs, wherein the objectgroup and the object group's primary object are positioned to accentuatethat the object group is subordinate to the primary object; displayingthe table organized according to the first arrangement; in response todetecting user input that deactivates the control, organizing the tableaccording to a second arrangement in which each of the object groups'primary objects are placed at the prominent location in order of thesorting, and in which all non-primary objects of the object groups areplaced in a visual position indicative of a subordinate positionrelative to a lowest-placed primary object in the table, wherein thenon-primary objects for the object groups are placed in visual groupingsthat correspond to the order of the sorting to maintain a hierarchy ofthe object groups correlated to a hierarchy of the primary objects; anddisplaying the table organized according to the second arrangement. 2.The computer-readable storage medium of claim 1, wherein sorting theplurality of object groups comprises sorting the plurality of objectgroups according to a first sorting rule.
 3. The computer-readablestorage medium of claim 1, wherein sorting the plurality of objectgroups comprises sorting the non-primary objects according to a secondsorting rule.
 4. The computer-readable storage medium of claim 1,further comprising another control for selecting the separate primaryobject associated with each of the plurality of object groups.
 5. Thecomputer-readable storage medium of claim 1, further comprising anothercontrol for establishing a persistent location for the primary objects.6. The computer-readable storage medium of claim 1, wherein the firstarrangement varies according to a location placement of the objectgroups within the table.
 7. The computer-readable storage medium ofclaim 1, further comprising in response to the sorting, positioning eachof the object group's primary object to a predominant location withinthe table.
 8. The computer-readable storage medium of claim 1, furtherproviding a group filter option configured to selectively filter out oneor more of the plurality of object groups.
 9. The computer-readablestorage medium of claim 1, wherein the order of sorting comprisesapplying a first sorting rule to the primary object groups and a secondsorting rule to at least some of the non-primary objects.
 10. Thecomputer-readable storage medium of claim 1, wherein the order ofsorting comprises applying a first sorting rule to the primary objectgroups according to a location of the primary object groups within thetable.
 11. The computer-readable storage medium of claim 1, wherein thesecond arrangement comprises sorting each of the object groups accordingto a first sorting rule and sorting all of the non-primary objectsaccording to a second sorting rule.
 12. The computer-readable storagemedium of claim 1, further comprising in response to detecting userinput that activates another control, organizing the table according toa third arrangement in which each of the object groups' primary objectsare placed at bottom position of the table in order of the sorting, andin which all non-primary objects of the object groups are placed above ahighest-placed primary object in the table.
 13. The computer-readablestorage medium of claim 1, further comprising in response to detectinguser input positioning the plurality of object groups within the table,organizing the table according to a third arrangement in which each ofthe object groups' primary objects are placed at a user definedprominent position.
 14. The computer-readable storage medium of claim 1,further comprising in response to detecting user input positioning theplurality of object groups within the table, organizing the tableaccording to a third arrangement in which relative positions of each ofthe object groups' primary objects and the non-primary objects vary inresponse to the positioning the plurality of object groups within thetable.
 15. The computer-readable storage medium of claim 1, furthercomprising in response to detecting user input positioning the pluralityof object groups within the table, organizing the table according to athird arrangement in which each of the object groups' primary objectspredominance relative to the non-primary objects varies automaticallywith the positioning of the plurality of object groups.
 16. Thecomputer-readable storage medium of claim 1, further comprising inresponse to detecting user input to filter the object groups, filteringthe object groups to remove at least some of the filtered object groupsfrom the table.
 17. The computer-readable storage medium of claim 1,further comprising selectively applying banding to the object groups todistinguish primary objects from non-primary objects.
 18. A computerimplemented method for selectively sorting and displaying data, themethod comprising: sorting a plurality of object groups, each objectgroup thereof including a separate primary object, by respective primaryobjects of those object groups; determining a plurality of prominentlocations within a table; displaying a control; in response to detectinguser input that activates the control, organizing the table according toa first arrangement in which the object groups are placed in order ofthe sorting relative to a prominent location selected from the pluralityof prominent locations, and in which each object group's primary objectis placed at a top of an object group to which that primary objectbelongs, wherein the object group and the object group's primary objectare positioned to accentuate that the object group is subordinate to theprimary object; displaying the table organized according to the firstarrangement; in response to detecting user input that deactivates thecontrol, organizing the table according to a second arrangement in whicheach of the object groups' primary objects are placed at the prominentlocation in order of the sorting, and in which all non-primary objectsof the object groups are placed in a visual position indicative of asubordinate position relative to a lowest-placed primary object in thetable, wherein the non-primary objects for the object groups are placedin visual groupings that correspond to the order of the sorting tomaintain a hierarchy of the object groups correlated to a hierarchy ofthe primary objects; and displaying the table organized according to thesecond arrangement.
 19. A system comprising: a digital processor coupledto a display screen and to a processor-readable storage device, whereinthe processor-readable storage device includes one or more instructionsexecutable by the digital processor to perform the following acts:sorting a plurality of object groups, each object group thereofincluding a separate primary object, by respective primary objects ofthose object groups; determining a plurality of prominent locationswithin a table; displaying a control; in response to detecting userinput that activates the control, organizing the table according to afirst arrangement in which the object groups are placed in order of thesorting relative to a prominent location selected from the plurality ofprominent locations, and in which each object group's primary object isplaced at a top of an object group to which that primary object belongs,wherein the object group and the object group's primary object arepositioned to accentuate that the object group is subordinate to theprimary object; displaying the table organized according to the firstarrangement; in response to detecting user input that deactivates thecontrol, organizing the table according to a second arrangement in whicheach of the object groups' primary objects are placed at the prominentlocation in order of the sorting, and in which all non-primary objectsof the object groups are placed in a visual position indicative of asubordinate position relative to a lowest-placed primary object in thetable, wherein the non-primary objects for the object groups are placedin visual groupings that correspond to the order of the sorting tomaintain a hierarchy of the object groups correlated to a hierarchy ofthe primary objects; and displaying the table organized according to thesecond arrangement.